Android客户端与服务器端的json数据交互(很详细) | 您所在的位置:网站首页 › Android怎么使用Java web端数据 › Android客户端与服务器端的json数据交互(很详细) |
Android客户端与服务器端的json数据交互,主要是通过json形式的数据交互,就是json的写入和解析。 先看效果图,我最讨厌讲东西,一个图没有的。
算了,看来我不是写博客的材料,写不下去了,要排版之类的麻烦,大家还是直接去下载源码,里面有大量的注视,应该能看懂。 下载地址:源码下载地址
登录界面:很传统的随便做了一下:
用的是android4.0的,别人说这样的EditText很有科技感。
注册界面:
也是很传统的,文本框之类的 。
下面看看包名,类名图。(忙着和比人聊天了,差点忘了) 现在继续 客户端的:
服务器端的:
下面贴上客户端的代码: LoginRegisterActivity.java [java] view plain copy print ? package com.gem.hsx.activity; import com.gem.hsx.operation.Operaton; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; //此为主activity的实现登录的。在android2.3以后,android规定了主activity不允许在主线程中做一些耗时较多的 //操作,包括网络的操作,主要是减少应用程序停止响应的问题。下面注释掉的部分是网上找到的方法,加上之后就可以在主线程中 //进行联网操作了,但是本人采用了线程的操作,未采用该方法 public class LoginRegisterActivity extends Activity { Button login; Button register; EditText etusername; EditText etpassword; String username; String password; ProgressDialog p; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() // .detectDiskReads() // .detectDiskWrites() // .detectNetwork() // or .detectAll() for all detectable problems // .penaltyLog() // .build()); // StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() // .detectLeakedSqlLiteObjects() // .penaltyLog() // .penaltyDeath() // .build()); init(); register.setOnClickListener(new RegisterOnclick()); login.setOnClickListener(new LoginOnclick()); } private void init() { etusername=(EditText) findViewById(R.id.etusername); etpassword=(EditText) findViewById(R.id.etpassword); login=(Button) findViewById(R.id.login); register=(Button) findViewById(R.id.register); p=new ProgressDialog(LoginRegisterActivity.this); p.setTitle("登录中"); p.setMessage("登录中,马上就好"); } private class RegisterOnclick implements OnClickListener { public void onClick(View v) { Intent intent=new Intent(); intent.setClass(LoginRegisterActivity.this, Register.class); startActivity(intent); } } private class LoginOnclick implements OnClickListener { public void onClick(View arg0) { username=etusername.getText().toString().trim(); if (username==null||username.length() // str=etusername.getText().toString().trim(); // if (str==null||str.length() // // public void run() { // Operaton operaton=new Operaton(); // String result= operaton.checkusername("Check", str); // Message message=new Message(); // message.obj=result; // handler.sendMessage(message); // } // }).start(); // // // } // } // public void beforeTextChanged(CharSequence s, int start, int count, // int after) { // // } // // public void onTextChanged(CharSequence s, int start, int before, // int count) { // // } // // } // Handler handler=new Handler() // { // @Override // public void handleMessage(Message msg) { // String msgobj=msg.obj.toString(); // if (msgobj=="该用户名可用") // { // etusername.setFocusable(false); // } // else // { // etusername.requestFocus(); // etusername.setError(msgobj); // } // super.handleMessage(msg); // } // }; // private class EtusernameOnFocusChange implements OnFocusChangeListener { public void onFocusChange(View v, boolean hasFocus) { if (!etusername.hasFocus()) { str=etusername.getText().toString().trim(); if (str==null||str.length()>(){}.getType(); Gson gson=new Gson(); ArrayList list=gson.fromJson(jsondata, listType); return list; } } WriteJson.java package com.gem.hsx.json; import java.util.List; import com.google.gson.Gson; public class WriteJson { /* * 通过引入gson jar包 写入 json 数据 */ public String getJsonData(List list) { //此处要注意,时常会出现说找不到Gson类的情况,这时我们只需要将导入的包和系统提供换换顺序就行了 Gson gson=new Gson();//利用google提供的gson将一个list集合写成json形式的字符串 String jsonstring=gson.toJson(list); return jsonstring; } /* * 当然如果不用gson也可以用传统的方式进行写入json数据或者利用StringBuffer拼字符串 写成json字符串形式 */ } |
CopyRight 2018-2019 实验室设备网 版权所有 |